home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / b / b.lha / B / src / bint / b2tar.c < prev    next >
C/C++ Source or Header  |  1988-11-24  |  712b  |  36 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2.  
  3. /*
  4.   $Header: b2tar.c,v 1.4 85/08/22 16:56:49 timo Exp $
  5. */
  6.  
  7. #include "b.h"
  8. #include "b1obj.h"
  9. #include "b2par.h"
  10. #include "b2syn.h"
  11. #include "b2nod.h"
  12. #include "b3err.h"
  13.  
  14. Forward parsetree singtarg();
  15.  
  16. Visible parsetree targ(q) txptr q; {
  17.     return collateral(q, singtarg);
  18. }
  19.  
  20. Hidden parsetree singtarg(q) txptr q; {
  21.     parsetree v; value t;
  22.     skipsp(&tx);
  23.     if (nothing(q, "target")) return NilTree;
  24.     if (open_sign()) v= compound(q, targ);
  25.     else if (is_tag(&t)) v= node2(TAG, t);
  26.     else {
  27.         parerr(MESS(2500, "no target where expected"));
  28.         tx= q;
  29.         return NilTree;
  30.     }
  31.     selection(q, &v);
  32.     tar_trimmed_text(q, &v);
  33.     upto(q, "target");
  34.     return v;
  35. }
  36.